package com.eascs.finance.admin.web.controller;

import javax.inject.Inject;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.eascs.finance.admin.common.entity.ArticleEntity;
import com.eascs.finance.admin.web.service.ArticleServiceImpl;
import com.eascs.site.controller.BaseRestController;
import com.eascs.site.view.BaseRestResult;

import jodd.util.StringUtil;

/**
 * @ClassName: ArticleRestController
 * @Description: 文章
 * @author 张庆奇
 * @date 2016年11月21日 上午9:41:54
 * @version V1.0
 */
@RestController
@RequestMapping("/articleRest")
public class ArticleRestController extends BaseRestController {

	@Inject
	ArticleServiceImpl articleService;

	/**
	 * @Title: delete
	 * @Description: 删除文章文章信息
	 * @author 张庆奇
	 * @param id
	 * @return
	 * @return BaseRestResult<String>
	 * @throws @date
	 *             2016年11月21日 上午9:41:43
	 */
	@RequestMapping(value = "/delete")
	public BaseRestResult<String> delete(String id) {

		boolean flag = articleService.deleteArticle(id);
		BaseRestResult<String> result = null;
		if (flag) {
			result = BaseRestResult.info("删除成功").andRefresh();
		} else {
			result = BaseRestResult.error("操作失败");
		}

		return result;

	}

	/**
	 * @Title: updateStatus
	 * @Description:发布或者禁止文章信息
	 * @author 张庆奇
	 * @param id
	 * @param status
	 * @return
	 * @return BaseRestResult<String>
	 * @throws
	 * @date 2016年11月21日 下午3:18:25
	 */
	@RequestMapping(value = "/updateStatus")
	public BaseRestResult<String> updateStatus(String id, int status) {

		boolean flag = articleService.updateArticleStatus(id, status);
		BaseRestResult<String> result = null;
		if (flag) {
			result = BaseRestResult.info("操作成功").andRefresh();
		} else {
			result = BaseRestResult.error("操作失败");
		}

		return result;

	}

	/**
	 * @Title: update
	 * @Description: 保存或者修改文章信息
	 * @author 张庆奇
	 * @param vo
	 * @return
	 * @return BaseRestResult<String>
	 * @throws
	 * @date 2016年11月21日 下午3:16:47
	 */
	@RequestMapping(value = "/update")
	public BaseRestResult<String> update(ArticleEntity vo) {
		boolean flag = false;
		BaseRestResult<String> result = null;
		if (StringUtil.isNotBlank(vo.getId())) {
			ArticleEntity entity = articleService.findArticleById(vo.getId());
			entity.setArticleTitle(vo.getArticleTitle());
			entity.setArticleUrl(vo.getArticleUrl());
			entity.setArticleSeoTitle(vo.getArticleSeoTitle());
			entity.setArticleKeywords(vo.getArticleKeywords());
			entity.setArticleDesc(vo.getArticleDesc());
			entity.setItemId(vo.getItemId());
			entity.setIsTop(vo.getIsTop());
			entity.setFrontDisplayTime(vo.getFrontDisplayTime());
			entity.setArticleContent(vo.getArticleContent());
			flag = articleService.updateArticle(entity);
		} else {
			String id = articleService.addArticle(vo);
			if (StringUtil.isNotBlank(id)) {
				flag = true;
			}
		}
		if (flag) {
			result = BaseRestResult.info("操作成功").andRedirect("index");
		} else {
			result = BaseRestResult.error("操作失败");
		}

		return result;

	}

}
